package HomeWork.map;

import java.util.Arrays;

public class CityFilter {
    public static void main(String[] args) {
        String[] arr = {"河北省", "山西省", "吉林省", "辽宁省", "黑龙江省", "陕西省",
                "甘肃省", "青海省", "山东省", "福建省", "浙江省", "台湾省", "河南省",
                "湖北省", "湖南省", "江西省", "江苏省", "安徽省", "广东省", "海南省",
                "四川省", "贵州省", "云南省", "北京市", "天津市", "上海市", "重庆市",
                "内蒙古自治区", "新疆维吾尔自治区", "宁夏回族自治区", "广西壮族自治区",
                "西藏自治区", "香港特别行政区", "澳门特别行政区"};
        /*
            请使用流依次完成下列操作：
            1、统计三个字的省份的个数
            2、统计名字中包含方位名词的省份（东西南北）的个数
            3、打印名字中包含方位名词的普通省份（非自治区直辖市特别行政区）的名字
            4、将所有的特殊省份（自治区直辖市特别行政区）提取出来并放到新数组中
         */
        int counts1 = Arrays.stream(arr).filter(e -> e.length() == 3).toList().size();
        System.out.println("三个字的省份的个数:" + counts1);
        System.out.println("=====================================");

        int counts2 = Arrays.stream(arr).filter(e -> e.contains("东") || e.contains("南") || e.contains("西") || e.contains("北"))
                .toList().size();
        System.out.println("名字中包含方位名词的省份（东西南北）的个数:" + counts2);
        System.out.println("=====================================");

        Arrays.stream(arr).filter(e -> (e.contains("东") || e.contains("南") || e.contains("西") || e.contains("北")) && !(e.contains("自治区") || e.contains("特别行政区") || e.contains("市")))
                .toList().forEach(System.out::println);
        System.out.println("=====================================");
        String[] spatialCity = Arrays.stream(arr).filter(e -> e.contains("自治区") || e.contains("特别行政区") || e.contains("市")).toList().toArray(new String[0]);
        System.out.println(Arrays.toString(spatialCity));
    }
}
